/*!
 * \file MediaGenerator.h
 * \brief Generator for media transmission state machine in Media Gateway
 */

#ifndef MGW_MEDIA_GENERATOR_H
#define MGW_MEDIA_GENERATOR_H

#include "Generator.h"
#include "StateBase.h"
//#include "Timer.h"

namespace tsc
{
namespace mgw
{

/**
 * Generator implementation for media transmission in Media Gateway.
 * One MediaGenerator corresponds to one media streaming connection with
 * User Client
 */
class MediaGenerator : public common::Generator
{
public:

    /**
     * Creates new MediaGenerator for handling new media connection with
     * UserClient
     */
    MediaGenerator(common::GeneratorEnvironment& ge);

	virtual ~MediaGenerator();

	uint32_t getServerMediaPort() const;
	void setServerMediaPort(uint32_t port);

private:

    uint32_t mConnectionId;
    uint32_t mMediaItemId;
    uint32_t mServerMediaPort;
};

} // namespace mgw
} // namespace tsc

#endif // MGW_MEDIA_GENERATOR_H
